package com.mercury.ec.module.air.dal.dataobject.order;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mercury.ec.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 机票订单价格 DO
 *
 * @author hesx
 */
@TableName("air_order_price")
@KeySequence("air_order_price_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AirOrderPriceDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 原价格id
     */
    private Long originOrderPriceId;
    /**
     * 票价级别FareBasis
     */
    private String fareBasis;
    /**
     * 订单id
     */
    private Long orderId;
    /**
     * 订单行程id
     */
    private Long orderRouteId;
    /**
     * 订单乘客id
     */
    private Long orderPassengerId;
    /**
     * 出票代码
     */
    private String airlineIssueNo;
    /**
     * 票号
     */
    private String ticketNo;
    /**
     * 终止票号
     */
    private String ticketLastNo;
    /**
     * 打票机号
     */
    private String ticketVendingMachineNo;
    /**
     * 编码客票状态
     */
    private String ticketStatus;
    /**
     * 出票失败原因 字典（air_order_ticket_fail_cause）
     *
     * 枚举 {@link TODO air_order_ticket_fail_cause 对应的类}
     */
    private Integer ticketFailCause;
    /**
     * 改签状态 字典（air_order_change_status 0-未改签，2-已改签）
     *
     * 枚举 {@link TODO air_order_change_status 对应的类}
     */
    private Integer changeStatus;
    /**
     * 改签类型 字典（air_order_change_type 1-改期/2-升舱）
     *
     * 枚举 {@link TODO air_order_change_type 对应的类}
     */
    private Integer changeType;
    /**
     * 改签员id 见表（system_users.id）
     */
    private Long changeUserId;
    /**
     * 改签部门id 见表（system_dept.id）
     */
    private Long changeDeptId;
    /**
     * 改签时间
     */
    private LocalDateTime changeTime;
    /**
     * 退票状态 字典（air_order_return_status 0-未退票，2-已退票）
     *
     * 枚举 {@link TODO air_order_return_status 对应的类}
     */
    private Integer returnStatus;
    /**
     * 退票订单类型 字典（air_order_return_order_type 1-退票/2-废票）
     *
     * 枚举 {@link TODO air_order_return_order_type 对应的类}
     */
    private Integer returnOrderType;
    /**
     * 退票类型 字典（air_order_return_type 1-自愿/2-非自愿）
     *
     * 枚举 {@link TODO air_order_return_type 对应的类}
     */
    private Integer returnType;
    /**
     * 退票原因 字典（air_order_return_cause）
     *
     * 枚举 {@link TODO air_order_return_cause 对应的类}
     */
    private Integer returnCause;
    /**
     * 退票员id 见表（system_users.id）
     */
    private Long returnUserId;
    /**
     * 退票部门id 见表（system_dept.id）
     */
    private Long returnDeptId;
    /**
     * 退票时间
     */
    private LocalDateTime returnTime;
    /**
     * 调账状态 字典（air_order_adjust_status 0-未调账，2-已调账）
     *
     * 枚举 {@link TODO air_order_adjust_status 对应的类}
     */
    private Integer adjustStatus;
    /**
     * 调账类型 字典（air_order_adjust_type 1-/2-/3-）
     *
     * 枚举 {@link TODO air_order_adjust_type 对应的类}
     */
    private Integer adjustType;
    /**
     * 调账员id 见表（system_users.id）
     */
    private Long adjustUserId;
    /**
     * 调账部门id 见表（system_dept.id）
     */
    private Long adjustDeptId;
    /**
     * 调账时间
     */
    private LocalDateTime adjustTime;
    /**
     * 附加费
     */
    private BigDecimal saleAdditionalFee;
    /**
     * 服务费
     */
    private BigDecimal saleServiceFee;
    /**
     * 升舱费
     */
    private BigDecimal saleUpgradeFee;
    /**
     * 改期费
     */
    private BigDecimal saleChangeFee;
    /**
     * 退票费率
     */
    private BigDecimal saleReturnFeeRate;
    /**
     * 退票费
     */
    private BigDecimal saleReturnFee;
    /**
     * 票面价
     */
    private BigDecimal saleTicketPrice;
    /**
     * 销售价
     */
    private BigDecimal salePrice;
    /**
     * 已用票面价
     */
    private BigDecimal saleUsedPrice;
    /**
     * 机建税
     */
    private BigDecimal saleAirportTax;
    /**
     * 已用机建税
     */
    private BigDecimal saleUsedAirportTax;
    /**
     * 燃油税
     */
    private BigDecimal saleOilTax;
    /**
     * 已用燃油税
     */
    private BigDecimal saleUsedOilTax;
    /**
     * 销售税
     */
    private BigDecimal saleTax;
    /**
     * 已用销售税
     */
    private BigDecimal saleUsedTax;
    /**
     * 代理费率
     */
    private BigDecimal saleAgencyFeeRate;
    /**
     * 代理费
     */
    private BigDecimal saleAgencyFee;
    /**
     * 后返费率
     */
    private BigDecimal saleBackRebateFeeRate;
    /**
     * 后返费
     */
    private BigDecimal saleBackRebateFee;
    /**
     * 记奖价
     */
    private BigDecimal salePrizePrice;
    /**
     * 记奖税
     */
    private BigDecimal salePrizeTax;
    /**
     * 销售金额
     */
    private BigDecimal saleAmount;
    /**
     * 应收
     */
    private BigDecimal saleReceivable;
    /**
     * 实收
     */
    private BigDecimal saleReceipts;
    /**
     * 支付状态 字典（system_pay_status）
     *
     * 枚举 {@link TODO system_pay_status 对应的类}
     */
    private Integer salePayStatus;
    /**
     * 支付科目id 见表（basic_pay_subject.id）
     */
    private Long salePaySubjectId;
    /**
     * 支付方式id 见表（basic_pay_type.id）
     */
    private Long salePayTypeId;
    /**
     * 支付账号
     */
    private String salePayAccount;
    /**
     * 支付单号
     */
    private String salePayOrderNo;
    /**
     * 支付时间
     */
    private LocalDateTime salePayTime;
    /**
     * 是否在线支付
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Boolean salePayOnline;
    /**
     * 采购商id 见表（basic_vendor.id）
     */
    private Long purchaseId;
    /**
     * 采购单号
     */
    private String purchaseOrderNo;
    /**
     * 采购附加费
     */
    private BigDecimal purchaseAdditionalFee;
    /**
     * 采购服务费
     */
    private BigDecimal purchaseServiceFee;
    /**
     * 采购升舱费
     */
    private BigDecimal purchaseUpgradeFee;
    /**
     * 采购改期费
     */
    private BigDecimal purchaseChangeFee;
    /**
     * 采购退票费率
     */
    private BigDecimal purchaseReturnFeeRate;
    /**
     * 采购退票费
     */
    private BigDecimal purchaseReturnFee;
    /**
     * 采购票面价
     */
    private BigDecimal purchaseTicketPrice;
    /**
     * 采购价
     */
    private BigDecimal purchasePrice;
    /**
     * 已用采购票面价
     */
    private BigDecimal purchaseUsedPrice;
    /**
     * 采购机建税
     */
    private BigDecimal purchaseAirportTax;
    /**
     * 已用采购机建税
     */
    private BigDecimal purchaseUsedAirportTax;
    /**
     * 采购燃油税
     */
    private BigDecimal purchaseOilTax;
    /**
     * 已用采购燃油税
     */
    private BigDecimal purchaseUsedOilTax;
    /**
     * 采购税
     */
    private BigDecimal purchaseTax;
    /**
     * 已用采购税
     */
    private BigDecimal purchaseUsedTax;
    /**
     * 采购代理费率
     */
    private BigDecimal purchaseAgencyFeeRate;
    /**
     * 采购代理费
     */
    private BigDecimal purchaseAgencyFee;
    /**
     * 采购后返费率
     */
    private BigDecimal purchaseBackRebateFeeRate;
    /**
     * 采购后返费
     */
    private BigDecimal purchaseBackRebateFee;
    /**
     * 采购记奖价
     */
    private BigDecimal purchasePrizePrice;
    /**
     * 采购记奖税
     */
    private BigDecimal purchasePrizeTax;
    /**
     * 采购金额
     */
    private BigDecimal purchaseAmount;
    /**
     * 采购应付
     */
    private BigDecimal purchasePayable;
    /**
     * 采购实付
     */
    private BigDecimal purchasePayment;
    /**
     * 采购支付状态 字典（system_pay_status）
     *
     * 枚举 {@link TODO system_pay_status 对应的类}
     */
    private Integer purchasePayStatus;
    /**
     * 采购支付科目id 见表（basic_pay_subject.id）
     */
    private Long purchasePaySubjectId;
    /**
     * 采购支付方式id 见表（basic_pay_type.id）
     */
    private Long purchasePayTypeId;
    /**
     * 采购支付账号
     */
    private String purchasePayAccount;
    /**
     * 采购支付单号
     */
    private String purchasePayOrderNo;
    /**
     * 采购支付时间
     */
    private LocalDateTime purchasePayTime;
    /**
     * 采购是否在线支付
     *
     * 枚举 {@link TODO infra_boolean_string 对应的类}
     */
    private Boolean purchasePayOnline;

}
